/**
 * Copyright 2008-2009 HAN.BIFANG
 *
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 *
 */
package han.bifang.gwt.client.service.content;

import han.bifang.gwt.client.common.Content;
import han.bifang.gwt.client.common.ContentChangeListener;
import han.bifang.gwt.client.common.GwtContext;
import han.bifang.gwt.client.common.PrivilegChecker;
import han.bifang.gwt.client.communicate.BifangGWTServiceAsync;
import han.bifang.gwt.client.service.ServiceContentConstants;
import han.bifang.gwt.client.service.ServiceMessages;

import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.ClickListener;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.Widget;

/**
 * 
 * @Author Kent
 */
public class AppContent extends Content implements ServiceSearchable {
	private BifangGWTServiceAsync service = null;

	private GwtContext context = null;

	private VerticalPanel panel = null;

	private ServiceMessages cons;

	private String appId;
	private SearchContent sp;

	public AppContent(ServiceMessages cons, BifangGWTServiceAsync service,
			GwtContext context, String id) {
		this.cons = cons;
		this.service = service;
		this.context = context;
		this.appId = id;
		panel = new VerticalPanel();
		panel.setSpacing(5);
		panel.setWidth("100%");

		Button c = new Button(cons.createService());
		c.addClickListener(new ClickListener() {

			public void onClick(Widget sender) {
				listener.onContentChanged(
						ServiceContentConstants.SERVICE_MGMT_ROOT,
						ServiceContentConstants.CREATE_SERVICE_BASIC, null);

			}

		});
		if (PrivilegChecker.hasPrivilege(context, null))
			panel.add(c);

		sp = new SearchContent(cons, service, context, appId, null);

		panel.add(sp);

		initWidget(panel);

	}

	public void onUnLoad() {
		panel = new VerticalPanel();
		sp = null;

	}

	public void setContentChangeListener(ContentChangeListener l) {
		listener = l;
		sp.setContentChangeListener(l);
	}

	public void refresh() {
		sp.refreshService();
	}

	public void refreshMappingService() {
		// TODO Auto-generated method stub

	}

}
